package com.supermap.dataservice.common.dao;

import com.supermap.dubbo.api.common.entity.Area;
import org.apache.ibatis.annotations.*;

import java.util.List;

/**
 * @Author:langhongshuai
 * @Description:区域数据访问层
 * @Date:18/1/8 上午11:34
 */
@Mapper
public interface AreaDao {
    /**
     * 获得所有的区域信息
     * @return
     */
    @Select("select * from t_area t1")
    public List<Area> getAllArea();

    /**
     * 通过区域名获取当前区域的信息
     * @param areaName
     * @return
     */
    @Select("select * from t_area where areaname=#{areaName}")
    public Area getAreaByName(@Param("areaName") String areaName);

    /**
     * 通过区域Code获得所有的区域信息以及下属区域
     * @return
     */
    @Select("select * from t_area t1 where t1.areaCode = #{areaCode}")
    public List<Area> getAreasByCode(@Param("areaCode") String code);

    /**
     * 通过用户id获取关注区域
     * @param userId
     * @return
     */
    @Select("select areaCode from t_user_area where userid=#{userid}")
    List<Area> getFocusAreaCodeByuserId(@Param("userid") int userId);

    /**
     * 删除用户关注的区域
     * @param userid
     * @param areaCode
     */
    @Delete("delete from t_user_area where userid=#{userid} and areaCoode=#{areaCode}")
    void delFocusAreaCode(@Param("userid") int userid, @Param("areaCode") String areaCode);

    /**
     * 增加用户关注的区域
     * @param userid
     * @param areaCode
     */
    @Insert("insert into t_user_area(userid,areaCode) values(#{userid},#{areaCode})")
    void addFocusAreaCode(@Param("userid") int userid, @Param("areaCode") String areaCode);
}
